/*
 * Copyright (c) 2022  by Junzhao
 * THIS FILE IS PART OF JAVASE Song Huongkang PROJECT
 * All Rights Reserved.
 */

package 学习.上.类的构造器;

/**
 * @description 构造器的使用 （构造方法） （constructor）的使用
 * constructor ”建造者“
 *
 * 作用 创建对象 初始化对象的属性
 * 若没有显式定义的构造器 则默认提供一个空参构造器
 * 一旦有了非空参的构造器就不提供了（会报错）
 * 定义构造器的格式 权限修饰符 类名（参数列表）{ 执行体 }
 * 类中至少有一个构造器
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 * @author 俊昭
 * @date 2022/3/22
*/
class PersonTest {
    public static void main(String[] args) {
        //创建类的对象 new 加 构造器
        Person p1 =new Person();// Person() 会执行构造器内的代码
        Person p2 =new Person("xiaowang");
        Person p3 =new Person("xiaoguo",19);
        Person p4 =new Person(20);
        Person p5 =new Person(19);
        Person p6 =new Person(18);
        Person p7 =new Person(17);
        System.out.println(p2.getAge() +" "+ p2.getName());
        System.out.println(p3.getAge() +" "+ p3.getName());
        System.out.println(p4.getAge() +" "+ p4.getName());
        System.out.println(p5.getAge() +" "+ p5.getName());
        System.out.println(p6.getAge() +" "+ p6.getName());
        System.out.println(p7.getAge() +" "+ p7.getName());

    }
}
class Person{
    // 属性
    private String name;
    private int age;

    // 构造器 一个类中的形参列表不同构造器也称重载
    public Person(){
        System.out.println("这是执行体");
    }
    public Person(String n){name = n;}
    public Person(String n,int i){name = n;age = i;}
    public Person(int i){
        age = i;
        name = "xiaobai";
    }


    // 方法
    public void eat(){
        System.out.println("人可以吃饭");
    }
    public void study(){
        System.out.println("人可以学习");
    }
    public int getAge(){
        return age;
    }
    public String getName() {
        return name;
    }

}
